package com.wocao.commom.utils;

import java.lang.reflect.Field;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Random;

/**
 * 通用工具类
 *
 * @author sunhao
 * @date 2021/6/16
 * @see [相关类/方法]（可选）
 * @since [产品/模块版本] （可选）
 */
public class CommonUtil {

    private final static String BASE = "qwertyuioplkjhgfdsazxcvbnmQAZWSXEDCRFVTGBYHNUJMIKLOP0123456789";

    /**
     * 功能描述: 获取随机数<br>
     *
     * @param place 位数
     * @return java.lang.String
     * @author eggg 2021/6/16 10:45
     * @see [相关类/方法]（可选）
     * @since [产品/模块版本]（可选）
     */
    public static String randomGen(int place) {
        StringBuffer sb = new StringBuffer();
        Random rd = new Random();
        for (int i = 0; i < place; i++) {
            sb.append(BASE.charAt(rd.nextInt(BASE.length())));
        }
        return sb.toString();
    }

    /**
     * 功能描述: 获取类的所有属性,包括父类<br>
     *
     * @param object 对象
     * @return java.lang.reflect.Field[]
     * @author eggg 2021/6/16 16:27
     * @see [相关类/方法]（可选）
     * @since [产品/模块版本]（可选）
     */
    public static Field[] getAllFields(Object object) {
        Class<?> clazz = object.getClass();
        List<Field> fieldList = new ArrayList<>();
        while (clazz != null) {
            fieldList.addAll(new ArrayList<>(Arrays.asList(clazz.getDeclaredFields())));
            clazz = clazz.getSuperclass();
        }
        Field[] fields = new Field[fieldList.size()];
        fieldList.toArray(fields);
        return fields;
    }

    /**
     * 功能描述: 获取数字验证码<br>
     *
     * @return java.lang.String
     * @author eggg 2021/10/29 14:22
     * @see [相关类/方法]（可选）
     * @since [产品/模块版本]（可选）
     */
    public static String randomNumber() {
        return String.valueOf((int) ((Math.random() * 9 + 1) * 100000));
    }

}
